"use strict";

function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
    try {
        var info = gen[key](arg);
        var value = info.value;
    } catch (error) {
        reject(error);
        return;
    }
    if (info.done) {
        resolve(value);
    } else {
        Promise.resolve(value).then(_next, _throw);
    }
}

function _asyncToGenerator(fn) {
    return function () {
        var self = this,
            args = arguments;
        return new Promise(function (resolve, reject) {
            var gen = fn.apply(self, args);

            function _next(value) {
                asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
            }

            function _throw(err) {
                asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
            }
            _next(undefined);
        });
    };
}

var fs = require('fs');

function readFile(filePath) {
    return new Promise(function (resolve, reject) {
        fs.readFile(filePath, 'utf8', function (err, data) {
            if (err) {
                reject(err);
            } else {
                resolve(data);
            }
        });
    });
}

;

function go() {
    return _go.apply(this, arguments);
}
/* 1. 函数外部处理 */


function _go() {
    _go = _asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee() {
        var dataA, dataB, dataC;
        return regeneratorRuntime.wrap(function _callee$(_context) {
            while (1) {
                switch (_context.prev = _context.next) {
                    case 0:
                        _context.next = 2;
                        return readFile('./data/1.txt');

                    case 2:
                        dataA = _context.sent;
                        _context.next = 5;
                        return readFile('./data/22.txt');

                    case 5:
                        dataB = _context.sent;
                        _context.next = 8;
                        return readFile('./data/3.txt');

                    case 8:
                        dataC = _context.sent;
                        console.log(dataA, dataB, dataC);

                    case 10:
                    case "end":
                        return _context.stop();
                }
            }
        }, _callee);
    }));
    return _go.apply(this, arguments);
}

go().catch(function (error) {
    console.log('error', error);
});
console.log('end');